home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue25 / construc / UNIT1.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1997-07-29  |  2.7 KB  |  98 lines

  1. unit Unit1;
  2. {.$DEFINE COOKIES}
  3. interface
  4. uses
  5.   Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables, DBWeb;
  6.  
  7. type
  8.   TWebModule1 = class(TWebModule)
  9.     QueryTableProducer1: TQueryTableProducer;
  10.     Query1: TQuery;
  11.     PageProducer1: TPageProducer;
  12.     DataSetTableProducer1: TDataSetTableProducer;
  13.     procedure WebModule1WebActionItem1Action(Sender: TObject;
  14.       Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  15.     procedure PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
  16.       const TagString: String; TagParams: TStrings;
  17.       var ReplaceText: String);
  18.     procedure WebModule1WebActionItem2Action(Sender: TObject;
  19.       Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  20.   private
  21.     { Private declarations }
  22.   public
  23.     { Public declarations }
  24.   end;
  25.  
  26. var
  27.   WebModule1: TWebModule1;
  28.  
  29. implementation
  30. {$R *.DFM}
  31.  
  32. procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  33.   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  34. {$IFDEF COOKIES}
  35. var
  36.   Cookies: TStringList;
  37. {$ENDIF}
  38. begin
  39. { QueryTableProducer1.MaxRows := 20; { default }
  40.   Response.Content :=
  41.     QueryTableProducer1.Content +
  42.     PageProducer1.Content;
  43. {$IFDEF COOKIES}
  44.   Cookies := TStringList.Create;
  45.   Cookies.Add('KEY='+Query1.Fields[0].AsString);
  46.   Response.SetCookieField(Cookies,'','',Now+1,False);
  47.   Cookies.Free;
  48. {$ENDIF}
  49. end;
  50.  
  51. procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
  52.   const TagString: String; TagParams: TStrings; var ReplaceText: String);
  53. begin
  54. {$IFNDEF COOKIES}
  55.   if TagString = 'KEY' then
  56.     ReplaceText := Query1.Fields[0].AsString;
  57. {$ENDIF}
  58.   if TagString = 'LENGTH' then
  59.     ReplaceText := Query1.Params.ParamValues['LENGTH'];
  60. end;
  61.  
  62. procedure TWebModule1.WebModule1WebActionItem2Action(Sender: TObject;
  63.   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  64. var
  65.   Key: Integer;
  66. {$IFDEF COOKIES}
  67. var
  68.   Cookies: TStringList;
  69. {$ENDIF}
  70. begin
  71.   Query1.Close;
  72.   Query1.Params[0].AsInteger :=
  73.     StrToInt(Request.ContentFields.Values['LENGTH']);
  74.   try
  75.   {$IFDEF COOKIES}
  76.     Key := StrToInt(Request.CookieFields.Values['KEY']);
  77.   {$ELSE}
  78.     Key := StrToInt(Request.ContentFields.Values['KEY']);
  79.   {$ENDIF}
  80.   except
  81.     Key := 0
  82.   end { 0 for no key };
  83.   Query1.Open;
  84.   while Query1.Fields[0].AsInteger < Key do Query1.Next;
  85.   { now create output page(s) }
  86.   Response.Content :=
  87.     DataSetTableProducer1.Content +
  88.     PageProducer1.Content;
  89. {$IFDEF COOKIES}
  90.   Cookies := TStringList.Create;
  91.   Cookies.Add('KEY='+Query1.Fields[0].AsString);
  92.   Response.SetCookieField(Cookies,'','',Now+1,False);
  93.   Cookies.Free;
  94. {$ENDIF}
  95. end;
  96.  
  97. end.
  98.